package cn.lyn4ever.utils;

import com.alibaba.fastjson.JSON;
import com.sun.tools.classfile.Opcode;
import org.json.JSONObject;
import org.json.XML;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * xml工具类
 *
 * @Author: lyn4ever
 * @Date: 2019/9/29 14:38
 * @Version: 1.0
 */
public class XmlTools {


    /**
     * json to xml
     * 这个只是为了在微信端使用，所以我们就直接在生成的xml字符串中拼接上了xml根标签
     *
     * @param json
     * @return
     */
    public static String json2xml(String json) {
        JSONObject jsonObj = new JSONObject(json);
        return "<xml>" + XML.toString(jsonObj) + "</xml>";
    }

    /**
     * xml to json
     * 先处理根节点的xml标签，再转为xml
     *
     * @param xml
     * @return
     */
    public static String xml2json(String xml) {
        JSONObject xmlJSONObj = XML.toJSONObject(xml.replace("<xml>", "").replace("</xml>", ""));
        return xmlJSONObj.toString();
    }

    /**
     * json2map
     *
     * @param json
     * @return
     */
    public static Map<String, Object> json2Map(String json) {
        Map<String, Object> map = JSON.parseObject(json, Map.class);
        Set<String> strings = map.keySet();
        for (String str : strings) {
            try {
                Map map1 = JSON.parseObject(map.get(str).toString(), Map.class);
                map.put(str, map1);
            } catch (Exception e) {
            }
        }
        return map;
    }


    /**
     * map2json
     * @param map
     * @return
     */
    public static String map2json(Map map) {
        return JSON.toJSONString(map);
    }


}
